package com.love.marriage.userPartnerPreferences.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.love.marriage.common.vo.BaseVo;
import com.love.marriage.config.Long2StringSerializer;
import com.love.marriage.oss.vo.FileInfoVo;
import com.love.marriage.userProfileInfo.vo.UserProfileInfoVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * description:  用户择偶要求表Vo
 * author:       mybatisPlus
 * createDate:   2024-10-29 22:13:42
 * version:      1.0.0
 */
@Getter
@Setter
@Accessors(chain = true)
@Schema(name = "UserPartnerVo", description = "UserPartnerVo")
public class UserPartnerVo extends BaseVo<UserPartnerVo>{

    @Schema(description = "用户名", type = "String", implementation = String.class)
    private String username;

    @Schema(description = "手机号码", type = "String", implementation = String.class)
    private String phone;

    @Schema(description = "用户编码", type = "String", implementation = String.class)
    private String code;

    @Schema(description = "用户状态 (active=活跃, inactive=不活跃)", type = "String", implementation = String.class)
    private String status;

    @Schema(description = "微信OpenID", type = "String", implementation = String.class)
    private String wechatOpenid;

    @Schema(description = "微信UnionID（跨平台统一标识）", type = "String", implementation = String.class)
    private String wechatUnionid;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "头像id", type = "Long", implementation = Long.class)
    private Long avatar;

    @Schema(description = "来源", type = "Integer", implementation = Integer.class)
    private Integer source;

    @Schema(description = "仅自己可见（1：是，0：否）", type = "Integer", implementation = Integer.class)
    private Integer self;

    @Schema(description = "绑定微信账号的时间", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime wechatBindTime;

    @Schema(description = "头像信息", implementation = FileInfoVo.class)
    private FileInfoVo personAvatar;

    @Schema(description = "用户资料信息", implementation = UserProfileInfoVo.class)
    private UserProfileInfoVo userProfileInfoVo;
}
